 /**
 * 统一日志工具
 * 支持开发/生产环境区分和不同日志级别
 */

const isDev = import.meta.env.MODE === 'development';

// 日志级别配置
const LOG_LEVELS = {
  ERROR: 0,
  WARN: 1,
  INFO: 2,
  DEBUG: 3
};

// 当前环境的日志级别
const currentLogLevel = isDev ? LOG_LEVELS.DEBUG : LOG_LEVELS.WARN;

/**
 * 格式化日志前缀
 * @param {string} level 日志级别
 * @param {string} module 模块名称
 */
const formatPrefix = (level, module = '') => {
  const timestamp = new Date().toLocaleTimeString();
  const moduleStr = module ? `[${module}]` : '';
  return `[${timestamp}] ${level} ${moduleStr}`;
};

/**
 * 创建日志器
 * @param {string} module 模块名称
 */
export function createLogger(module = '') {
  return {
    /**
     * 错误日志 - 总是显示
     */
    error: (...args) => {
      if (currentLogLevel >= LOG_LEVELS.ERROR) {
        console.error(formatPrefix('ERROR', module), ...args);
      }
    },

    /**
     * 警告日志 - 生产环境也显示
     */
    warn: (...args) => {
      if (currentLogLevel >= LOG_LEVELS.WARN) {
        console.warn(formatPrefix('WARN', module), ...args);
      }
    },

    /**
     * 信息日志 - 仅开发环境
     */
    info: (...args) => {
      if (currentLogLevel >= LOG_LEVELS.INFO) {
        console.info(formatPrefix('INFO', module), ...args);
      }
    },

    /**
     * 调试日志 - 仅开发环境
     */
    debug: (...args) => {
      if (currentLogLevel >= LOG_LEVELS.DEBUG) {
        console.log(formatPrefix('DEBUG', module), ...args);
      }
    },

    /**
     * 普通日志 - 仅开发环境，兼容原有console.log
     */
    log: (...args) => {
      if (isDev) {
        console.log(formatPrefix('LOG', module), ...args);
      }
    }
  };
}

// 默认日志器
export const logger = createLogger();

// 组件专用日志器工厂
export const createComponentLogger = (componentName) => createLogger(componentName);

// 布局专用日志器
export const layoutLogger = createLogger('Layout');

// API专用日志器  
export const apiLogger = createLogger('API');

// 筛选器专用日志器
export const filterLogger = createLogger('Filter');

// 滚动专用日志器
export const scrollLogger = createLogger('Scroll');